package com.penghaisoft.microwms.material.web.intowarehouse.service;

import java.util.List;

import com.penghaisoft.microwms.common.dto.RawBarcodeDto;
import com.penghaisoft.microwms.common.dto.TransResult;
import com.penghaisoft.microwms.common.page.Pager;
import com.penghaisoft.microwms.common.wms.model.RawAuditingHis;
import com.penghaisoft.microwms.common.wms.model.RawBarcode;
import com.penghaisoft.microwms.common.wms.model.RawStorageSn;

/**
 * @Description 原材料入库
 * @author luoteng
 * @date 2018年5月23日 上午11:47:37
 * @version 1.0
 */
public interface IMaterialIntoService {
	/** 
	 * @Title findListByCondition
	 * @Description 原材料条码查询列表
	 * @author luoteng
	 * @date 2018年5月23日:上午11:58:10
	 * @param page
	 * @param rows
	 * @param condition
	 * @return
	 */
	public Pager<RawBarcode> findListByCondition(int page, int rows, RawBarcode condition);
	
	/** 
	 * @Title createBarcode
	 * @Description 条码新增
	 * @author luoteng
	 * @date 2018年5月23日:下午5:34:38
	 * @param condition
	 * @return int
	 */
	public int createBarcode(RawBarcode condition);
	
	/** 
	 * @Title createBarcodeByList
	 * @Description 条码新增【批量】
	 * @author luoteng
	 * @date 2018年7月2日:下午3:53:03
	 * @param condition
	 * @param barcodeList
	 */
	public void createBarcodeByList(RawBarcode condition, List<String> barcodeList);
	
	/** 
	 * @Title updateBarcode
	 * @Description 条码修改
	 * @author luoteng
	 * @date 2018年5月23日:下午5:34:47
	 * @param condition
	 * @return int
	 */
	public int updateBarcode(RawBarcode condition);
	
	public void updateBarcodeRelate(RawBarcode condition);
	
	/** 
	 * @Title getBarcodeList
	 * @Description 获取条码数组
	 * @author luoteng
	 * @date 2018年5月23日:下午5:54:30
	 * @param condition
	 * @return List<RawBarcode>
	 */
	public List<RawBarcode> getBarcodeList(RawBarcode condition);
	
	/** 
	 * @Title findIntoWhRawStorageSnList
	 * @Description 查询入库条码明细
	 * @author luoteng
	 * @date 2018年5月24日:下午4:17:47
	 * @param page
	 * @param rows
	 * @param condition
	 * @return Pager<RawStorageSn>
	 */
	public Pager<RawStorageSn> findIntoWhRawStorageSnList(int page, int rows, RawStorageSn condition);

	/** 
	* @Title: findIntoWhList 
	* @Description: 原材料入库明细导出 
	* @param @param rawStorageSn
	* @param @return  参数说明 
	* @return List<RawStorageSn>    返回类型
	* @author jzh 
	* @throws 
	*/
	public List<RawStorageSn> findIntoWhList(RawStorageSn rawStorageSn);
	
	/** 
	 * @Title listIntoWhModelType
	 * @Description 查询入库型号明细
	 * @author luoteng
	 * @date 2018年5月24日:下午4:17:47
	 * @param page
	 * @param rows
	 * @param condition
	 * @return Pager<RawStorageSn>
	 */
	public Pager<RawStorageSn> listIntoWhModelType(int page, int rows, RawStorageSn condition);
	
	/**
	 * @param page
	 * @param rows
	 * @param condition
	 * @return
	 * @author lengxf
	 */
	public Pager<RawStorageSn> findListAuditing(int page, int rows, RawStorageSn condition);
	
	public Pager<RawAuditingHis> findListAuditingHis(int page, int rows, RawAuditingHis condition);
	
	public RawStorageSn findByStroageSnId(RawStorageSn rawStorageSn);
	
	public TransResult delBarcode(RawStorageSn rawStorageSn , String loginName);
	
	public RawStorageSn findQuantitiyWbMaterial(RawStorageSn rawStorageSn);
	
	public Pager<RawStorageSn> findQuantitiyMaterial(int page, int rows, RawStorageSn condition);
	
	public List<RawStorageSn> findQuantitiyMaterialInTime(RawStorageSn condition);
	
	public Pager<RawStorageSn> findQuantitiyMaterialToSn(int page, int rows, RawStorageSn condition);
}
